/*
 * Tencent is pleased to support the open source community by making 蓝鲸 available.
 * Copyright (C) 2017-2022 THL A29 Limited, a Tencent company. All rights reserved.
 * Licensed under the MIT License (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 * http://opensource.org/licenses/MIT
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
 * either express or implied. See the License for the specific language governing permissions and
 * limitations under the License.
 */

import Vue from 'vue'

const state = {
  syncIdMap: {}
}

const getters = {
  // syncIds: (state) => (templateId) => {
  //     const sessionSyncIdMap = sessionStorage.getItem('setSyncIdMap')
  //     if (!Object.keys(state.syncIdMap).length && sessionSyncIdMap) {
  //         const syncIdMap = JSON.parse(sessionSyncIdMap)
  //         // commit('resetSyncIdMap', syncIdMap)
  //         return syncIdMap[templateId]
  //     }
  //     return state.syncIdMap[templateId]
  // }
}

const mutations = {
  deleteInstancesId(state, data) {
    const curInstancesId = state.syncIdMap[data.id]
    const newInstancesId = curInstancesId.filter(id => id !== data.deleteId)
    Vue.set(state.syncIdMap, data.id, newInstancesId)
    sessionStorage.setItem('setSyncIdMap', JSON.stringify(state.syncIdMap))
  },
  setSyncIdMap(state, data) {
    Vue.set(state.syncIdMap, data.id, data.instancesId)
    sessionStorage.setItem('setSyncIdMap', JSON.stringify(state.syncIdMap))
  },
  resetSyncIdMap(state, data) {
    state.syncIdMap = data
  }
}

export default {
  namespaced: true,
  state,
  getters,
  mutations
}
